package com.Apo1o.exception;

import com.Apo1o.response.Result;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;

/**
 * @Auther: Apo1o.
 * @Date: 2023/10/25-10-25-14:10
 * @Description： 全局异常处理器    AOP的应用
 */
@RestControllerAdvice //抽取公共代码
public class GlobalExceptionHandler {
    //捕获业务异常
    @ExceptionHandler(CustomerException.class) //括号里写的抓取该类型的异常
    public Result customerAbnormal(CustomerException e) {
        System.out.println("I can handle");
        //e是要抓取异常信息（throw）
        return Result.failure(e.getResultCode());//自己能处理的Runtime异常
    }
    //全局异常返回的方法
    @ExceptionHandler(Exception.class) //括号里写的抓取该类型的异常
    public Result abnormal(Exception e){//处理不了的

        e.printStackTrace();
        System.out.println("GlobalExceptionHandler.abnormal");
        //e是要抓取异常信息（throw）
        return Result.failure("系统接口异常");

    }
}
